package com.lj.sys.result;

import com.lj.sys.constant.SysConstant;
import com.lj.sys.entity.SysUser;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author luojing
 * @since 2025/8/6 17:22
 * 登录认证后用户信息，放入redis中
 */
@Data
@NoArgsConstructor
public class LoginUserInfo {

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 当前用户是否时超级管理员
     */
    private boolean superAdmin = false;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 当前用户拥有的部门及其子部门id集合
     */
    private List<Long> deptIdList;

    /**
     * 角色id集合
     */
    private List<Long> roleIdList;

    /**
     * 权限标识符
     */
    private List<String> permissionList;

    /**
     * 角色编码
     */
    private List<String> roleCodeList;

    public LoginUserInfo(SysUser sysUser) {
        this.userId = sysUser.getId();
        this.superAdmin = SysConstant.SUPER_ADMIN_ID.equals(userId);
        this.nickName = sysUser.getNickName();
        this.userName = sysUser.getUserName();
        this.deptId = sysUser.getDeptId();
    }

}
